package com.sms.auditservice.service;

import com.sms.common.result.Result;

import java.time.LocalDateTime;
import java.util.Map;

public interface SmsAuditService {
    
    /**
     * 记录短信发送日志
     */
    Result<String> recordSmsLog(String taskId, Long userId, Long templateId, String phoneNumber, 
                               String content, Integer status, String channelCode, String result, String errorMessage);
    
    /**
     * 记录审计日志
     */
    Result<String> recordAuditLog(Integer auditType, String auditObjectId, String auditObjectType, 
                                 Integer auditOperation, Long operatorId, String operatorName,
                                 String beforeStatus, String afterStatus, String operationDesc);
    
    /**
     * 统计分析 - 按日期统计发送量
     */
    Result<Object> getSendStatisticsByDate(String startDate, String endDate);
    
    /**
     * 统计分析 - 按模板统计发送量
     */
    Result<Object> getSendStatisticsByTemplate(String startDate, String endDate);
    
    /**
     * 统计分析 - 按通道统计发送量
     */
    Result<Object> getSendStatisticsByChannel(String startDate, String endDate);
    
    /**
     * 统计分析 - 按用户统计发送量
     */
    Result<Object> getSendStatisticsByUser(String startDate, String endDate);
    
    /**
     * 查询短信日志
     */
    Result<Object> getSmsLogList(Integer pageNum, Integer pageSize, String phoneNumber, 
                                Integer status, String startDate, String endDate);
    
    /**
     * 查询审计日志
     */
    Result<Object> getAuditLogList(Integer pageNum, Integer pageSize, Integer auditType, 
                                  Integer auditOperation, String startDate, String endDate);
    
    /**
     * 导出短信日志
     */
    Result<String> exportSmsLog(String startDate, String endDate);
    
    /**
     * 导出审计日志
     */
    Result<String> exportAuditLog(String startDate, String endDate);
} 